/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package myftp.app.view.dialog;

import java.awt.Component;
import javax.swing.JOptionPane;
import myftp.core.Template;

/**
 *
 * @author CAVARLE Glenn, LUCAS Stéphane
 * Boites de dialogues */
public class TemplateDialog extends JOptionPane {

    private static Component parent;

    static {
        parent = Template.getInstance();
    }


/* ####  Boites de dialogue INFORMATIVES #### */


/**
 * Information du succès de l'opération
 */
    public static void showSuccessDialog(String successString) {
        TemplateDialog.showMessageDialog(parent,
                successString, "Opération réussie",
                TemplateDialog.INFORMATION_MESSAGE);
    }



/* ####  Boites de dialogue d'ERREUR #### */


/**
 * Erreur : Connexion échouée
 */
    public static void showFailedConnectDialog() {
        TemplateDialog.showMessageDialog(parent,
                "Connexion au serveur impossible\n"
                + "Veuillez vérifier vos identifiants",
                "Connexion serveur", TemplateDialog.WARNING_MESSAGE);
    }

/**
 * Erreur : Problème d'accès au serveur
 */
    public static void showErrorFtpDialog(String anHost) {
        TemplateDialog.showMessageDialog(parent,
                "Connexion au serveur \"" + anHost + "\" impossible\n"
                + "Veuillez vérifier votre connexion ou l'adresse du serveur",
                "Connexion serveur", TemplateDialog.WARNING_MESSAGE);
    }

/**
 * Erreur : Erreur Interne
 */
    public static void showInternalErrorDialog(String anError) {
        TemplateDialog.showMessageDialog(parent,
                "Une erreur s'est produite :\n"
                + "\"" + anError + "\"",
                "Erreur interne", TemplateDialog.WARNING_MESSAGE);
    }


/* ####  Boites de dialogue de CONFIRMATION #### */


/**
 * Confirmation de fermeture de l'application
 */
    public static Integer showExitDialog() {
        return TemplateDialog.showConfirmDialog(parent,
                "Voulez-vous vraiment quitter l'application ?",
                "Fermeture du programme",
                TemplateDialog.YES_NO_OPTION);
    }

/**
 * Confirmation d'une nouvelle connexion
 */
    public static Integer showNewConnectDialog() {
        return TemplateDialog.showConfirmDialog(parent,
                "Ouvrir une nouvelle connexion ?",
                "Une connexion est en cours",
                TemplateDialog.YES_NO_OPTION);
    }

/**
 * Confirmation de fermeture d'un onglet
 */
    public static Integer showCloseTabDialog() {
        return TemplateDialog.showConfirmDialog(parent,
                "Voulez-vous vraiment fermer l'onglet ?",
                "Fermeture de l'onglet",
                TemplateDialog.YES_NO_OPTION);
    }



/**
 * Confirmation de téléversement
 */
    public static Integer showUploadDialog(String file) {
        return TemplateDialog.showConfirmDialog(parent,
                "Uploader le fichier : " + file + " ?",
                "Confirmation UP",
                TemplateDialog.YES_NO_OPTION);
    }

/**
 * Confiramtion de téléchargment
 */
    public static Integer showDownloadDialog(String file) {
        return TemplateDialog.showConfirmDialog(parent,
                "Télécharger le fichier : " + file + " ?",
                "Confirmation DOWN",
                TemplateDialog.YES_NO_OPTION);
    }

/**
 * Confirmation d'annulation d'un transfert
 */
    public static Integer showStopDialog() {
        return TemplateDialog.showConfirmDialog(parent,
                "Voulez-vous arreter le téléchargement ?",
                "Confirmation",
                TemplateDialog.YES_NO_OPTION);
    }

/**
 * Confirmation de mise en attente d'un transfert
 */
    public static Integer showPauseDialog() {
        return TemplateDialog.showConfirmDialog(parent,
                "Voulez-vous mettre en pause ?",
                "Confirmation",
                TemplateDialog.YES_NO_OPTION);
    }

/**
 * Confirmation de reprise d'un transfert
 */
    public static Integer showRestartDialog() {
        return TemplateDialog.showConfirmDialog(parent,
                "Voulez-vous reprendre le téléchargement ?",
                "Confirmation",
                TemplateDialog.YES_NO_OPTION);
    }

/**
 * Confirmation de supression d'un fichier
 */
    public static Integer showDeleteDialog(String file) {
        return TemplateDialog.showConfirmDialog(parent,
                "Supprimer le fichier : " + file + " ?",
                "Confirmation",
                TemplateDialog.YES_NO_OPTION);
    }


/**
 * Confirmation de création d'un dossier
 */
    public static String showCreateDirDialog() {
        String fileName = "";
        try {
            fileName = JOptionPane.showInputDialog(null, "Entrer le nom du fichier", "Ouvrir",
                    JOptionPane.PLAIN_MESSAGE);
            if (fileName.equals(null)) {
            }
        } catch (NullPointerException npe) {
            fileName = "";
        }
        if (!fileName.equals("")) {
        }
        System.out.println(fileName);
        return fileName;
    }

/**
 * Confirmation de sauvegarde d'un serveur
 */
    public static Integer showSaveDialog(String anHostName) {
        return TemplateDialog.showConfirmDialog(parent,
                "Enregistrer les informations du serveur \"" + anHostName + "\" ?",
                "Confirmation",
                TemplateDialog.YES_NO_OPTION);
    }




/* #### AUTRES Boites de dialogue #### */


/**
 * Fenetre des crédits
 */
    public static void showCreditsDialog() {
        TemplateDialog.showMessageDialog(parent,
                "Réalisé au cours du module : \"Conception et Réalisation Java\"\n"
                + "de la L3 Ingénierie Informatique de l'IUP de Brest\n"
                + "\n"
                + "par :\n"
                + "- CAVARLE Glenn {glenn.cavarle@gmail.com}\n"
                + "- LUCAS Stéphane {etn.lucas@gmail.com}\n"
                + "\n"
                + "Février-Mars 2011",
                "A propos",
                TemplateDialog.INFORMATION_MESSAGE);
    }


}
